home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 8
/
FM Towns Free Software Collection 8.iso
/
t_os
/
artemis
/
artsrc2
/
rdmos.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-06-01
|
1KB
|
85 lines
/*
rdmos.c
*/
#include <ryosuke.h>
#include <usrlib.h>
#include <mos.h>
#define STARTX 320
#define STARTY 240
static char mwk[4096];
static char patwk[258];
#define XOFS 50
#define YOFS 16
void minit()
{
MOS_start( mwk, 4096 );
// MOS_setpos(STARTX,STARTY);
MOS_horizon(0, 640+XOFS*2);
MOS_vertical(0, 480+YOFS*2);
MOS_setpos(XOFS+0,YOFS+0);
MOS_typeRom(81,XOFS,YOFS, patwk);
}
void mend()
{
MOS_end();
}
void rdmos(MSDAT *msdat)
{
int msx,msy,msb; char i,*bp;
MOS_rdpos(&msb,&msx,&msy);
msx -= XOFS;
msy -= YOFS;
msdat->dx = msx - msdat->x;
msdat->dy = msy - msdat->y;
msdat->x = msx;
msdat->y = msy;
// msdat->x += (msdat->dx = msx - STARTX);
// msdat->y += (msdat->dy = msy - STARTY);
// MOS_setpos(STARTX,STARTY);
for (i=0; i<2; i++,(msb>>=1))
{
bp = (i==0 ? &(msdat->btn1) : &(msdat->btn2));
if (msb & 1)
*bp = ((*bp == OFF || *bp == ONOFF) ? OFFON : ON);
else
*bp = ((*bp == OFF || *bp == ONOFF) ? OFF : ONOFF);
}
}
void mous_setpos(MSDAT *msdat, int x,int y)
{
MOS_setpos(XOFS+x,YOFS+y);
msdat->x = x;
msdat->y = y;
msdat->dx = msdat->dy = 0;
}
void mous_typeRom(int type)
{
MOS_typeRom(type, XOFS,YOFS, patwk);
}
void mous_type(int mode, char *pattern)
{
MOS_type(mode, XOFS,YOFS, pattern);
}
/* end of rdmos.c */